package com.hsjk.szwj.module.train.service;

import com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseCatalogCreateReqVO;
import com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseCatalogDetailRespVO;
import com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseCatalogUpdateReqVO;
import com.hsjk.szwj.module.train.controller.admin.vo.AdminGetCourseCatalogByCourseIdRespVO;

import java.util.List;

/**
 * @author chenjiawei
 * @desc
 * @Date 2023/09/25 16:12
 **/
public interface ICourseCatalogService {
    /**
     * 根据课程id获取课程目录列表
     *
     * @param courseId
     * @return com.hsjk.szwj.module.train.controller.admin.vo.AdminGetCourseCatalogByCourseIdRespVO
     * @author chenjiawei
     * @date 2023/9/25 4:16 PM
     **/
    List<AdminGetCourseCatalogByCourseIdRespVO> listCourseCatalogByCourseId(Long courseId);

    /**
     * 获取课程目录详情
     *
     * @param id
     * @return com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseCatalogDetailRespVO
     * @author chenjiawei
     * @date 2023/10/29 11:49 AM
     **/
    AdminCourseCatalogDetailRespVO getCourseCatalogDetail(Long id);

    /**
     * 创建课程目录
     *
     * @param reqVO
     * @return java.lang.Boolean
     * @author chenjiawei
     * @date 2023/10/29 11:51 AM
     **/
    Boolean createCourseCatalog(AdminCourseCatalogCreateReqVO reqVO);

    /**
     * 更新课程目录
     *
     * @param reqVO
     * @return java.lang.Boolean
     * @author chenjiawei
     * @date 2023/10/29 11:52 AM
     **/
    Boolean updateCourseCatalog(AdminCourseCatalogUpdateReqVO reqVO);

    /**
     * 删除课程目录
     *
     * @param id
     * @return int
     * @author chenjiawei
     * @date 2023/10/28 4:23 PM
     **/
    Boolean deleteCourseCatalog(Long id);
}
